home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -seriously_amiga- / misc / amised / viewers / sources / amis_lib.h next >
C/C++ Source or Header  |  1999-04-19  |  1KB  |  56 lines

  1.  
  2. #include <utility/tagitem.h>
  3.  
  4. /* This part is for all interface functions */
  5.  
  6. __asm struct AMIS_Requester *BuiltRequester(
  7.                                         register __a0 struct AMIS_ReqDef *reqdef,
  8.                                         register __a1 struct TagItem *tags);
  9. __asm long _InterClose(register __a0 struct AMIS_Requester *areq);
  10.  
  11. struct amisProject {
  12.     struct Node    node;
  13.     struct List    reqs;
  14.     char            name[40];
  15. };
  16.  
  17. /* Next part is for Red-Black Tree functions */
  18.  
  19. __asm struct RB_Node *RB_NewNode(register __a0 APTR key);
  20. __asm void RB_InsertNode(register __a0 struct RB_Tree *tree, register __a1 struct RB_Node *node);
  21. __asm void RB_Free(register __a0 struct RB_Tree *tree);
  22. __asm struct RB_Node *RB_Search(register __a0 struct RB_Tree *tree, register __a1 APTR key);
  23. __asm BOOL RB_BuiltTree(register __a0 struct RB_Tree *tree, register __a1 APTR key[]);
  24. __asm void RB_Invoke(register __a0 struct RB_Tree *tree, register __a1 void (*func)());
  25.  
  26. struct RB_Tree {
  27.     struct RB_Node *tree;
  28.     int                (*compare)(APTR key1,APTR key2);
  29. };
  30.  
  31. struct RB_Node {
  32.     struct RB_Node    *parent;
  33.     char                color;
  34.     char                type;
  35.     WORD                key_extra;
  36.     struct RB_Node *left;
  37.     struct RB_Node    *right;
  38.     APTR                key;
  39. };
  40.  
  41. struct RB_Built {
  42.     long                size;
  43.     struct RB_Node    rb_node;
  44. };
  45.  
  46. #define RED 0
  47. #define BLACK 1
  48.  
  49. #define RB_NODE_LIST        0
  50. #define RB_NODE_SINGLE    1
  51. #define RB_NODE_FREE        2
  52.  
  53. #define DEFAULT_SCREEN    1
  54.  
  55. #define IFLG_BUILD        1
  56.